﻿using System;
using System.Collections.Generic;
using System.Text;

namespace vJine.Core.ORM.Adapters {
    public partial class Oracle : IDbAdapter<Oracle> {
        static List<string> _KeyWords = new List<string>();
        /// <summary>
        /// http://docs.oracle.com/cd/B19306_01/appdev.102/b14354/appb.htm
        /// </summary>
        static void Init_Keywords() {
            _KeyWords.Add("DEC");
            _KeyWords.Add("ABORT");
            _KeyWords.Add("ACCEPT");
            _KeyWords.Add("ACCESS");
            _KeyWords.Add("ADD");
            _KeyWords.Add("ADMIN");
            _KeyWords.Add("AFTER");
            _KeyWords.Add("ALL");
            _KeyWords.Add("ALLOCATE");
            _KeyWords.Add("ALTER");
            _KeyWords.Add("ANALYZE");
            _KeyWords.Add("AND");
            _KeyWords.Add("ANY");
            _KeyWords.Add("ARCHIVE");
            _KeyWords.Add("ARCHIVELOG");
            _KeyWords.Add("ARRAY");
            _KeyWords.Add("ARRAYLEN");
            _KeyWords.Add("AS");
            _KeyWords.Add("ASC");
            _KeyWords.Add("ASSERT");
            _KeyWords.Add("ASSIGN");
            _KeyWords.Add("AT");
            _KeyWords.Add("AUDIT");
            _KeyWords.Add("AUTHORIZATION");
            _KeyWords.Add("AVG");
            _KeyWords.Add("BACKUP");
            _KeyWords.Add("BASE_TABLE");
            _KeyWords.Add("BECOME");
            _KeyWords.Add("BEFORE");
            _KeyWords.Add("BEGIN");
            _KeyWords.Add("BETWEEN");
            _KeyWords.Add("BINARY_INTEGER");
            _KeyWords.Add("BLOCK");
            _KeyWords.Add("BODY");
            _KeyWords.Add("BOOLEAN");
            _KeyWords.Add("BY");
            _KeyWords.Add("CACHE");
            _KeyWords.Add("CANCEL");
            _KeyWords.Add("CASCADE");
            _KeyWords.Add("CASE");
            _KeyWords.Add("CHANGE");
            _KeyWords.Add("CHAR");
            _KeyWords.Add("CHAR_BASE");
            _KeyWords.Add("CHARACTER");
            _KeyWords.Add("CHECK");
            _KeyWords.Add("CHECKPOINT");
            _KeyWords.Add("CLOSE");
            _KeyWords.Add("CLUSTER");
            _KeyWords.Add("CLUSTERS");
            _KeyWords.Add("COBOL");
            _KeyWords.Add("COLAUTH");
            _KeyWords.Add("COLUMN");
            _KeyWords.Add("COLUMNS");
            _KeyWords.Add("COMMENT");
            _KeyWords.Add("COMMIT");
            _KeyWords.Add("COMPILE");
            _KeyWords.Add("COMPRESS");
            _KeyWords.Add("CONNECT");
            _KeyWords.Add("CONSTANT");
            _KeyWords.Add("CONSTRAINT");
            _KeyWords.Add("CONSTRAINTS");
            _KeyWords.Add("CONTENTS");
            _KeyWords.Add("CONTINUE");
            _KeyWords.Add("CONTROLFILE");
            _KeyWords.Add("COUNT");
            _KeyWords.Add("CRASH");
            _KeyWords.Add("CREATE");
            _KeyWords.Add("CURRENT");
            _KeyWords.Add("CURRVAL");
            _KeyWords.Add("CURSOR");
            _KeyWords.Add("CYCLE");
            _KeyWords.Add("DATA_BASE");
            _KeyWords.Add("DATABASE");
            _KeyWords.Add("DATAFILE");
            _KeyWords.Add("DATE");
            _KeyWords.Add("DBA");
            _KeyWords.Add("DEBUGOFF");
            _KeyWords.Add("DEBUGON");
            _KeyWords.Add("DECIMAL");
            _KeyWords.Add("DECLARE");
            _KeyWords.Add("DEFAULT");
            _KeyWords.Add("DEFINITION");
            _KeyWords.Add("DELAY");
            _KeyWords.Add("DELETE");
            _KeyWords.Add("DELTA");
            _KeyWords.Add("DESC");
            _KeyWords.Add("DIGITS");
            _KeyWords.Add("DISABLE");
            _KeyWords.Add("DISMOUNT");
            _KeyWords.Add("DISPOSE");
            _KeyWords.Add("DISTINCT");
            _KeyWords.Add("DO");
            _KeyWords.Add("DOUBLE");
            _KeyWords.Add("DROP");
            _KeyWords.Add("DUMP");
            _KeyWords.Add("EACH");
            _KeyWords.Add("ELSE");
            _KeyWords.Add("ELSIF");
            _KeyWords.Add("ENABLE");
            _KeyWords.Add("END");
            _KeyWords.Add("ENTRY");
            _KeyWords.Add("ESCAPE");
            _KeyWords.Add("EVENTS");
            _KeyWords.Add("EXCEPT");
            _KeyWords.Add("EXCEPTION");
            _KeyWords.Add("EXCEPTION_INIT");
            _KeyWords.Add("EXCEPTIONS");
            _KeyWords.Add("EXCLUSIVE");
            _KeyWords.Add("EXEC");
            _KeyWords.Add("EXECUTE");
            _KeyWords.Add("EXISTS");
            _KeyWords.Add("EXIT");
            _KeyWords.Add("EXPLAIN");
            _KeyWords.Add("EXTENT");
            _KeyWords.Add("EXTERNALLY");
            _KeyWords.Add("FETCH");
            _KeyWords.Add("FILE");
            _KeyWords.Add("FLOAT");
            _KeyWords.Add("FLUSH");
            _KeyWords.Add("FOR");
            _KeyWords.Add("FORCE");
            _KeyWords.Add("FOREIGN");
            _KeyWords.Add("FORM");
            _KeyWords.Add("FORTRAN");
            _KeyWords.Add("FOUND");
            _KeyWords.Add("FREELIST");
            _KeyWords.Add("FREELISTS");
            _KeyWords.Add("FROM");
            _KeyWords.Add("FUNCTION");
            _KeyWords.Add("GENERIC");
            _KeyWords.Add("GO");
            _KeyWords.Add("GOTO");
            _KeyWords.Add("GRANT");
            _KeyWords.Add("GROUP");
            _KeyWords.Add("GROUPS");
            _KeyWords.Add("HAVING");
            _KeyWords.Add("IDENTIFIED");
            _KeyWords.Add("IF");
            _KeyWords.Add("IMMEDIATE");
            _KeyWords.Add("IN");
            _KeyWords.Add("INCLUDING");
            _KeyWords.Add("INCREMENT");
            _KeyWords.Add("INDEX");
            _KeyWords.Add("INDEXES");
            _KeyWords.Add("INDICATOR");
            _KeyWords.Add("INITIAL");
            _KeyWords.Add("INITRANS");
            _KeyWords.Add("INSERT");
            _KeyWords.Add("INSTANCE");
            _KeyWords.Add("INT");
            _KeyWords.Add("INTEGER");
            _KeyWords.Add("INTERSECT");
            _KeyWords.Add("INTO");
            _KeyWords.Add("IS");
            _KeyWords.Add("KEY");
            _KeyWords.Add("LANGUAGE");
            _KeyWords.Add("LAYER");
            _KeyWords.Add("LEVEL");
            _KeyWords.Add("LIKE");
            _KeyWords.Add("LIMITED");
            _KeyWords.Add("LINK");
            _KeyWords.Add("LISTS");
            _KeyWords.Add("LOCK");
            _KeyWords.Add("LOGFILE");
            _KeyWords.Add("LONG");
            _KeyWords.Add("LOOP");
            _KeyWords.Add("MANAGE");
            _KeyWords.Add("MANUAL");
            _KeyWords.Add("MAX");
            _KeyWords.Add("MAXDATAFILES");
            _KeyWords.Add("MAXEXTENTS");
            _KeyWords.Add("MAXINSTANCES");
            _KeyWords.Add("MAXLOGFILES");
            _KeyWords.Add("MAXLOGHISTORY");
            _KeyWords.Add("MAXLOGMEMBERS");
            _KeyWords.Add("MAXTRANS");
            _KeyWords.Add("MAXVALUE");
            _KeyWords.Add("MIN");
            _KeyWords.Add("MINEXTENTS");
            _KeyWords.Add("MINUS");
            _KeyWords.Add("MINVALUE");
            _KeyWords.Add("MLSLABEL");
            _KeyWords.Add("MOD");
            _KeyWords.Add("MODE");
            _KeyWords.Add("MODIFY");
            _KeyWords.Add("MODULE");
            _KeyWords.Add("MOUNT");
            _KeyWords.Add("NATURAL");
            _KeyWords.Add("NEW");
            _KeyWords.Add("NEXT");
            _KeyWords.Add("NEXTVAL");
            _KeyWords.Add("NOARCHIVELOG");
            _KeyWords.Add("NOAUDIT");
            _KeyWords.Add("NOCACHE");
            _KeyWords.Add("NOCOMPRESS");
            _KeyWords.Add("NOCYCLE");
            _KeyWords.Add("NOMAXVALUE");
            _KeyWords.Add("NOMINVALUE");
            _KeyWords.Add("NONE");
            _KeyWords.Add("NOORDER");
            _KeyWords.Add("NORESETLOGS");
            _KeyWords.Add("NORMAL");
            _KeyWords.Add("NOSORT");
            _KeyWords.Add("NOT");
            _KeyWords.Add("NOTFOUND");
            _KeyWords.Add("NOWAIT");
            _KeyWords.Add("NULL");
            _KeyWords.Add("NUMBER");
            _KeyWords.Add("NUMBER_BASE");
            _KeyWords.Add("NUMERIC");
            _KeyWords.Add("OF");
            _KeyWords.Add("OFF");
            _KeyWords.Add("OFFLINE");
            _KeyWords.Add("OLD");
            _KeyWords.Add("ON");
            _KeyWords.Add("ONLINE");
            _KeyWords.Add("ONLY");
            _KeyWords.Add("OPEN");
            _KeyWords.Add("OPTIMAL");
            _KeyWords.Add("OPTION");
            _KeyWords.Add("OR");
            _KeyWords.Add("ORDER");
            _KeyWords.Add("OTHERS");
            _KeyWords.Add("OUT");
            _KeyWords.Add("OWN");
            _KeyWords.Add("PACKAGE");
            _KeyWords.Add("PARALLEL");
            _KeyWords.Add("PARTITION");
            _KeyWords.Add("PCTFREE");
            _KeyWords.Add("PCTINCREASE");
            _KeyWords.Add("PCTUSED");
            _KeyWords.Add("PLAN");
            _KeyWords.Add("PLI");
            _KeyWords.Add("POSITIVE");
            _KeyWords.Add("PRAGMA");
            _KeyWords.Add("PRECISION");
            _KeyWords.Add("PRIMARY");
            _KeyWords.Add("PRIOR");
            _KeyWords.Add("PRIVATE");
            _KeyWords.Add("PRIVILEGES");
            _KeyWords.Add("PROCEDURE");
            _KeyWords.Add("PROFILE");
            _KeyWords.Add("PUBLIC");
            _KeyWords.Add("QUOTA");
            _KeyWords.Add("RAISE");
            _KeyWords.Add("RANGE");
            _KeyWords.Add("RAW");
            _KeyWords.Add("READ");
            _KeyWords.Add("REAL");
            _KeyWords.Add("RECORD");
            _KeyWords.Add("RECOVER");
            _KeyWords.Add("REFERENCES");
            _KeyWords.Add("REFERENCING");
            _KeyWords.Add("RELEASE");
            _KeyWords.Add("REMR");
            _KeyWords.Add("RENAME");
            _KeyWords.Add("RESETLOGS");
            _KeyWords.Add("RESOURCE");
            _KeyWords.Add("RESTRICTED");
            _KeyWords.Add("RETURN");
            _KeyWords.Add("REUSE");
            _KeyWords.Add("REVERSE");
            _KeyWords.Add("REVOKE");
            _KeyWords.Add("ROLE");
            _KeyWords.Add("ROLES");
            _KeyWords.Add("ROLLBACK");
            _KeyWords.Add("ROW");
            _KeyWords.Add("ROWID");
            _KeyWords.Add("ROWLABEL");
            _KeyWords.Add("ROWNUM");
            _KeyWords.Add("ROWS");
            _KeyWords.Add("ROWTYPE");
            _KeyWords.Add("RUN");
            _KeyWords.Add("SAVEPOINT");
            _KeyWords.Add("SCHEMA");
            _KeyWords.Add("SCN");
            _KeyWords.Add("SECTION");
            _KeyWords.Add("SEGMENT");
            _KeyWords.Add("SELECT");
            _KeyWords.Add("SEPARATE");
            _KeyWords.Add("SEQUENCE");
            _KeyWords.Add("SESSION");
            _KeyWords.Add("SET");
            _KeyWords.Add("SHARE");
            _KeyWords.Add("SHARED");
            _KeyWords.Add("SIZE");
            _KeyWords.Add("SMALLINT");
            _KeyWords.Add("SNAPSHOT");
            _KeyWords.Add("SOME");
            _KeyWords.Add("SORT");
            _KeyWords.Add("SPACE");
            _KeyWords.Add("SQL");
            _KeyWords.Add("SQLBUF");
            _KeyWords.Add("SQLCODE");
            _KeyWords.Add("SQLERRM");
            _KeyWords.Add("SQLERROR");
            _KeyWords.Add("SQLSTATE");
            _KeyWords.Add("START");
            _KeyWords.Add("STATEMENT");
            _KeyWords.Add("STATEMENT_ID");
            _KeyWords.Add("STATISTICS");
            _KeyWords.Add("STDDEV");
            _KeyWords.Add("STOP");
            _KeyWords.Add("STORAGE");
            _KeyWords.Add("SUBTYPE");
            _KeyWords.Add("SUCCESSFUL");
            _KeyWords.Add("SUM");
            _KeyWords.Add("SWITCH");
            _KeyWords.Add("SYNONYM");
            _KeyWords.Add("SYSDATE");
            _KeyWords.Add("SYSTEM");
            _KeyWords.Add("TABAUTH");
            _KeyWords.Add("TABLE");
            _KeyWords.Add("TABLES");
            _KeyWords.Add("TABLESPACE");
            _KeyWords.Add("TASK");
            _KeyWords.Add("TEMPORARY");
            _KeyWords.Add("TERMINATE");
            _KeyWords.Add("THEN");
            _KeyWords.Add("THREAD");
            _KeyWords.Add("TIME");
            _KeyWords.Add("TO");
            _KeyWords.Add("TRACING");
            _KeyWords.Add("TRANSACTION");
            _KeyWords.Add("TRIGGER");
            _KeyWords.Add("TRIGGERS");
            _KeyWords.Add("TRUNCATE");
            _KeyWords.Add("TYPE");
            _KeyWords.Add("UID");
            _KeyWords.Add("UNDER");
            _KeyWords.Add("UNION");
            _KeyWords.Add("UNIQUE");
            _KeyWords.Add("UNLIMITED");
            _KeyWords.Add("UNTIL");
            _KeyWords.Add("UPDATE");
            _KeyWords.Add("USE");
            _KeyWords.Add("USER");
            _KeyWords.Add("USING");
            _KeyWords.Add("VALIDATE");
            _KeyWords.Add("VALUES");
            _KeyWords.Add("VARCHAR");
            _KeyWords.Add("VARCHAR2");
            _KeyWords.Add("VARIANCE");
            _KeyWords.Add("VIEW");
            _KeyWords.Add("VIEWS");
            _KeyWords.Add("WHEN");
            _KeyWords.Add("WHENEVER");
            _KeyWords.Add("WHERE");
            _KeyWords.Add("WHILE");
            _KeyWords.Add("WITH");
            _KeyWords.Add("WORK");
            _KeyWords.Add("WRITE");
            _KeyWords.Add("XOR");
            _KeyWords.Add("FALSE");
            _KeyWords.Add("TRUE");
        }
    }
}
